﻿using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using Unijovem.Domain;
using Unijovem.UI.Helpers;
using Unijovem.UI.Models;

namespace Unijovem.UI.Controllers
{
    public class FaleConoscoController : ControllerBase<FaleConoscoModel, FaleConosco>
    {
        public ActionResult ContatoEnviado()
        {
            return View();
        }

        public ActionResult Contato()
        {
            return PartialView();
        }

        public override ActionResult Criar()
        {
            PreencherViewBag();
            return base.Criar();
        }

        public override ActionResult Criar(FaleConoscoModel model)
        {
            PreencherViewBag();

            if (ModelState.IsValid)
            {
                base.Criar(model);
                return RedirectToAction("ContatoEnviado");
            }

            return base.Criar(model);
        }

        public void PreencherViewBag()
        {
            var tipos = new Dictionary<string, string>();

            var enumTipo = FaleConoscoModel.TipoComunicacao.Elogio;
            tipos.Add(((int)enumTipo).ToString(), EnumHelper<FaleConoscoModel.TipoComunicacao>.GetDescription(enumTipo));
            enumTipo = FaleConoscoModel.TipoComunicacao.PedidoOracao;
            tipos.Add(((int)enumTipo).ToString(), EnumHelper<FaleConoscoModel.TipoComunicacao>.GetDescription(enumTipo));
            enumTipo = FaleConoscoModel.TipoComunicacao.Reclamacao;
            tipos.Add(((int)enumTipo).ToString(), EnumHelper<FaleConoscoModel.TipoComunicacao>.GetDescription(enumTipo));
            enumTipo = FaleConoscoModel.TipoComunicacao.Sugestao;
            tipos.Add(((int)enumTipo).ToString(), EnumHelper<FaleConoscoModel.TipoComunicacao>.GetDescription(enumTipo));

            ViewBag.Tipos = new SelectList(tipos.OrderBy(t => t.Value), "Key", "Value");
        }
    }
}
